/**@file
 * @brief 测试脚本执行结果声明
 * @author 朱项男<libxiangnan@gmail.com>
 * @date 2011/11/17
 * @version 0.0.1
 * */

#ifndef SCRRS_H_
#define SCRRS_H_

#include <string>
#include <ctime>

#include "entity.h"

using namespace std;

namespace dat {

/**@class ScrRs scrRs.h scrRs.h
 * @brief 测试脚本评估结果声明
 * @author 朱项男<libxiangnan@gmail.com>
 * @note
 *
 * */
class Result {
private:
	std::string m_Log; 		///< 脚本执行日志
	std::string m_StartTime; 	///< 脚本执行起始时间
	std::string m_EndTime; 	///< 脚本执行结束时间
	unsigned int m_Total; 				///< 脚本断言总数
	unsigned int m_Success; 			///< 脚本断言成功数量
	unsigned int m_Failure; 			///< 脚本断言失败数量
public:
	//!
	Result();

	//!
	Result(const std::string &log, const std::string &startTime, const std::string &endTime,
			unsigned int total, unsigned int success, unsigned int failure);

	//!
	~Result();

	//! 成员变量 Getter
	void Gets(std::string &log, std::string &startTime, std::string &endTime,
			unsigned int *total, unsigned int *success, unsigned int *failure);
	//! 成员变量Setter
	void Sets(const std::string &log, const std::string &startTime, const std::string &endTime,
			unsigned int total, unsigned int success, unsigned int failure);

	//! m_Log Setter
	void SetLog(const std::string &log);

	//! m_Log Getter
	std::string GetLog();

	//! m_StartTime Setter
	void SetStartTime(const std::string &startTime);

	//! m_StartTime Getter
	std::string GetStartTime(void);

	//! m_EndTime Setter
	void setEndTime(const std::string &endTime);

	//! m_EndTime Getter
	std::string GetEndTime(void);

	//! m_Total Setter
	void SetTotal(unsigned int total);

	//! m_Total Getter
	unsigned int GetTotal(void);

	//! m_Success Setter
	void SetSuccess(unsigned int success);

	//! m_Success Getter
	unsigned int GetSuccess(void);

	//! m_Failure Setter
	void SetFailure(unsigned int failure);

	//! m_Failure Getter
	unsigned int GetFailure(void);
};

} /* namespace dat */
#endif /* SCRRS_H_ */
